#pragma once
#include <iostream>

#include <signal.h>
#include <unistd.h>

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

void MyDaemon()
{
    signal(SIGPIPE, SIG_IGN);
    signal(SIGCHLD, SIG_IGN);
    
    if(fork() > 0) exit(0);
    
    setsid();

    int devnull = open("/dev/null", O_RDONLY | O_WRONLY);
    if(devnull > 0)
    {
        dup2(devnull, 0); // 标准输出重定向到devnull文件中
        dup2(devnull, 1); // 标准输入重定向到devnull文件中
        dup2(devnull, 2); // 标准错误重定向到devnull文件中

        close(devnull);
    }
}
